package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.CommunityComment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 社区评论Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface CommunityCommentMapper 
{
    /**
     * 查询评论
     * 
     * @param commentId 评论主键
     * @return 评论
     */
    public CommunityComment selectCommentById(Long commentId);

    /**
     * 查询评论列表
     * 
     * @param comment 评论信息 (包含 postId 和 userId)
     * @return 评论集合（包含所有评论和回复）
     */
    public List<CommunityComment> selectCommentList(CommunityComment comment);

    /**
     * 查询评论的所有回复
     *
     * @param commentId 评论ID
     * @return 回复集合
     */
    public List<CommunityComment> selectRepliesByCommentId(@Param("commentId") Long commentId);

    /**
     * 新增评论
     * 
     * @param comment 评论
     * @return 结果
     */
    public int insertComment(CommunityComment comment);

    /**
     * 修改评论
     * 
     * @param comment 评论
     * @return 结果
     */
    public int updateComment(CommunityComment comment);

    /**
     * 删除评论
     * 
     * @param commentId 评论主键
     * @return 结果
     */
    public int deleteCommentById(Long commentId);

    /**
     * 批量删除评论
     * 
     * @param commentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCommentByIds(Long[] commentIds);

    /**
     * 更新评论点赞数
     * 
     * @param commentId 评论ID
     * @param count 点赞数变化
     * @return 结果
     */
    public int updateCommentLikes(Long commentId, Integer count);
} 